#pragma once

#include <stddef.h>

typedef struct {
    size_t student_id;
    size_t hostel_id;
    size_t building_id;
    size_t bed_id; /* bed_id starts from 1, <= Hostel.bed_num  */
} Student;

void register_student(size_t student_id, size_t hostel_id, size_t building_id, size_t bed_id, bool);
int unregister_student(size_t student_id);
int edit_student(size_t student_id, size_t hostel_id, size_t building_id, size_t bed_id);
void print_student(Student const*const);
void list_students(void);
Student* get_student(size_t student_id);
size_t count_students_in_a_hostel(size_t hostel_id);
void list_students_in_a_hostel(size_t hostel_id, size_t building_id);
void info_register_log(void);
void init_student_module(void);
